package com.zhiyou100.util.file;

import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.util.IdUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

/**
 * hutool FileUtil 扩展类
 *
 * @author yang
 * @version 1.0.0
 * @date 2020-10-16 10:00
 */
@Slf4j
public class FileUtil extends cn.hutool.core.io.FileUtil {

    /**
     * MultipartFile to File
     *
     * @param multipartFile 目标文件
     * @return 转换后的 File 文件
     */
    public static File toFile(MultipartFile multipartFile) {
        // 获取文件名
        String fileName = multipartFile.getOriginalFilename();
        // 获取文件后缀
        String prefix = "." + FileNameUtil.getSuffix(fileName);
        File file = null;
        try {
            // 用uuid作为文件名，防止生成的临时文件重复
            file = File.createTempFile(IdUtil.simpleUUID(), prefix);
            // MultipartFile to File
            multipartFile.transferTo(file);
        } catch (IOException e) {
            log.error(e.getMessage(), e);
        }
        return file;
    }
}
